export {}

/**
  字面量类型 
  - js 字面量如：18 'jack' ['a'] {age: 10} 等等。
  - 使用 js字面量 作为变量类型，这种类型就是字面量类型。
 */

  // let age: 18 = 18
  // age = 19

  // let name: '张三' = '张三'

  // let str1 = '张三'
  // str1 = '李四'
  // --------------
  // const str2 = '王五'


  /**
    字面量类型的应用场景
   */

  // 场景1:   
  // let gender: '男' | '女' = '女'
  // gender = '男'

  // type Gender = '男' | '女'
  // let gender : Gender = '男'

  // 场景2: 
  // 方向: 4个(上up下down左left右right)
  // type Direction = 'up' | 'down' | 'left' | 'right'
  // function changeDirection(direction: Direction) {
  //   console.log(direction);
  // }
  // changeDirection('down')


  // 场景3:
  type Method = 'get' | 'GET' | 'post' | 'POST'
  function axios(method: Method){}
  axios('GET')

  /**
   小结：
   - 字面量类型配合联合类型来使用，表示：一组明确的可选的值
   - 优势：相比于 string 类型，使用字面量类型更加精确、严谨
   */